package com.dgshanger.sanhxiaofeisc.mvp.contract;

import com.dgshanger.sanhxiaofeisc.entity.LoginEntity;
import com.xx.baseuilibrary.mvp.BaseMvpView;
import com.xx.baseutilslibrary.network.rx.XxBaseHttpObserver;

/**
 * LoginContract
 * 沉迷学习不能自拔
 * Describe：
 * Created by 雷小星🍀 on 2018/2/5 17:19.
 */

public interface LoginContract {
    interface Model {

        /**
         * 登录
         */
        void login(int loginType,
                   String mobile,
                   String login_pass,
                   XxBaseHttpObserver<LoginEntity> xxBaseHttpObserver);

        /**
         * 发送验证码
         */
        void sendCode(String mobile, XxBaseHttpObserver<Object> httpObserver);
    }

    interface View extends BaseMvpView {

        /**
         * 获取登录类型
         *
         * @return
         */
        int getLoginType();

        /**
         * 获取输入账号
         */
        String getPhone();

        /**
         * 获取验证码/密码
         *
         * @return 验证码
         */
        String getVCode();

        /**
         * 设置发送按钮是否可用
         *
         * @param enable 是否可用
         */
        void setSendBtnEnable(boolean enable);

        /**
         * 设置发送按钮文本内容
         *
         * @param text 发送按钮文本内容
         */
        void setSendBtnText(String text);


        /**
         * 登录成功
         */
        void loginSuccess();
    }

    interface Presenter {
        /**
         * 登录
         */
        void login();

        /**
         * 发送验证码
         */
        void sendCode();
    }
}
